package com.guigu.pojo.stock;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author Mr.Zhang
 * @since 2024-12-06
 */
@Data
@TableName("S_PAY")
public class SPay implements Serializable {

    private static final long serialVersionUID=1L;

    //@apiModelProperty(value = "序号，唯一标识出库记录，自增长")
      @TableId(value = "ID", type = IdType.AUTO)
    private Integer id;

    //@apiModelProperty(value = "出库单编号，不可为空，唯一标识出库单，便于出库业务管理与追踪")
    @TableField("PAY_ID")
    private String payId;

    //@apiModelProperty(value = "出库人姓名，可空，记录出库操作人员，明确责任主体")
    @TableField("STORER")
    private String storer;

    //@apiModelProperty(value = "出库理由代码，如生产领料、赠送等，不可为空，规范出库原因分类，便于统计分析")
    @TableField("REASON")
    private String reason;

    //@apiModelProperty(value = "出库详细理由，可空，补充出库原因细节，完善业务记录")
    @TableField("REASONEXACT")
    private String reasonexact;

    //@apiModelProperty(value = "总件数，不可为空，统计出库商品总数量，核算库存变动")
    @TableField("AMOUNT_SUM")
    private BigDecimal amountSum;

    //@apiModelProperty(value = "总金额，可空，计算出库商品总价值，财务核算依据")
    @TableField("COST_PRICE_SUM")
    private BigDecimal costPriceSum;

    //@apiModelProperty(value = "确认出库总件数，可空，记录实际确认出库数量，精准库存调整")
    @TableField("PAID_AMOUNT_SUM")
    private BigDecimal paidAmountSum;

    //@apiModelProperty(value = "备注信息，可空，记录其他出库相关信息，如特殊要求、备注事项等")
    @TableField("REMARK")
    private String remark;

    //@apiModelProperty(value = "登记人姓名，可空，登记出库业务人员，追溯操作轨迹")
    @TableField("REGISTER")
    private String register;

    //@apiModelProperty(value = "登记时间，可空，记录出库登记时间，监控业务时效")
    @TableField("REGISTER_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date registerTime;

    //@apiModelProperty(value = "复核人姓名，可空，复核出库信息人员，保障数据准确无误")
    @TableField("CHECKER")
    private String checker;

    //@apiModelProperty(value = "复核时间，可空，记录复核时间点，确保业务流程合规")
    @TableField("CHECK_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date checkTime;

    //@apiModelProperty(value = "审核标志，如等待审核、审核通过、审核不通过，不可为空，掌控出库审核进度")
    @TableField("CHECK_TAG")
    private String checkTag;

    //@apiModelProperty(value = "调度人姓名，可空，协调出库调度人员，优化业务流程")
    @TableField("ATTEMPER")
    private String attemper;

    //@apiModelProperty(value = "调度时间，可空，记录调度操作时间，提升业务协同性")
    @TableField("ATTEMPER_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date attemperTime;

    //@apiModelProperty(value = "库存标志，如已登记、已调度，不可为空，跟踪库存状态变更")
    @TableField("STORE_TAG")
    private String storeTag;

    @TableField("PAY_CHECK_TAG")
    private String payCheckTag;

}
